package com.shujia.java.day19.demo5;
/**
* @Description: MyRunnable 网络购票100张票
* @Author: 王火火
* @Date: 2019/8/22 10:53
*/
public class MyRunnable implements Runnable{
    int sum=100;
    //run方法上加上synchronized 有问题
    @Override
    public void run() {
        while (true){
            show();
        }
    }
    /**
     *  1 2 3  3个线程
     *  1进来了 （有这个synchronized来进行修饰 给这方法加上一个锁） 锁就关上了
     *  2 3 要进去了 发现有个锁进不去 就在外面等着
     *  等1运行完之后 这个方法的锁 打开   123 抢资源决定谁在进来
     */
    //同步方法
    public synchronized void show(){
            //要同步的操作
            if(sum>0){
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName()+"买了第"+(sum--)+"张票");
            }
    }
}
